package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.system.entity.BtyTxl;
import cn.stylefeng.guns.sys.modular.system.entity.BtyTxlRY;
import cn.stylefeng.guns.sys.modular.system.model.params.TakeAwayTxlParam;
import cn.stylefeng.guns.sys.modular.system.model.result.TakeAwayResult;
import cn.stylefeng.guns.sys.modular.system.model.result.YyjlResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BtyTxlMapper extends BaseMapper<BtyTxl> {

    //获取档案管理列表
    Page<Map<String, Object>> list(@Param("page") Page page, @Param("ctbh") String ctbh, @Param("dm") String dm, @Param("csqy") String csqy,
                                   @Param("yyjlqy") String yyjlqy, @Param("dd") String dd, @Param("beginTime") String beginTime,
                                   @Param("endTime") String endTime, @Param("status") Integer status);

    //获取档案管理列表
//    List<Map<String, Object>> listExport(@Param("ctbh") String ctbh, @Param("dm") String dm, @Param("csqy") String csqy,
//                                         @Param("yyjl") String yyjl, @Param("dd") String dd, @Param("beginTime") String beginTime, @Param("endTime") String endTime);

    List<BtyTxl> listExport(@Param("ctbh") String ctbh, @Param("dm") String dm, @Param("csqy") String csqy,
                                         @Param("yyjl") String yyjl, @Param("dd") String dd,
                            @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("status") Integer status);


    void delete(Long id);
    //根据店名查询和这个店有关的所有数据 其实这里用的是餐厅表的主键ID
    BtyTxl getByID(Long id, Long pid);

    BtyTxl getByID2(Long id);

    int updateTxl(BtyTxl btyTxl);

    int updateTxlRY(BtyTxlRY btyTxlRY);

    int updateCtbh(@Param("btyTxl") BtyTxl btyTxl);

    int addfzr(BtyTxlRY btyTxlRY);

    int addDZ(BtyTxl btyTxl);

    int addct(BtyTxl btyTxl);

    int selectDm(@Param("dm") String dm);

    Page<Map<String, Object>> view(@Param("page") Page page, @Param("id") Long id);

    int view_delete(Long pid);

    BtyTxlRY view_update_getByID(Long pid);

    int view_update(BtyTxlRY btyTxlRY);

    List<BtyTxl> selectTerm(@Param("term") String term);
    List<BtyTxl> listByCtbh(@Param("ctbh") String ctbh);

    int selectCount(@Param("ssctdm") String ssctdm, @Param("zw") String zw);

    List<BtyTxl> selectSpjy();

    //查找营运经理openID
    String selectYyjl(String yyjl);

    //查询开业时间,餐厅编号
    BtyTxl getCount(String dm);

    //根据店名修改食品经营许可证截止日期
    int updateBtyTxl(BtyTxl btyTxl);

    //根据店名修改负责人
    int updateBtyTxlRy(BtyTxlRY btyTxlRY);

    //查询所有营运经理及其电话
    List<BtyTxl> selectYy(@Param("yyjl") String yyjl);

    /**
     * 修改店长
     * */
    int editPerson(@Param("btyTxl") BtyTxl btyTxl);

    //查询督导所属店名
    List<BtyTxl> ddList(String account);

    //查询营运经理所属店名
    List<BtyTxl> yyList(String account);

    List selectDdList(@Param("btyDm") String btyDm, @Param("zw") String zw);

    String getBh(@Param("dm") String dm);

    void updateRy(@Param("btyTxl") BtyTxl btyTxl);

    //删除bty_txl_ry表数据
    void deleteRy(Long id);

    int dmCount(List<BtyTxl> txlList);

    int bhCount(List<BtyTxl> txlList);

    void addTxl(List<BtyTxl> txlList);

    void addTxlRy(List<BtyTxlRY> txlRYList);

    void deleteTxl();

    void deleteTxlRY();

    void addBtyTxl(BtyTxl btyTxl);

    //餐厅编号判重
    int selectBh(@Param("ctbh") String ctbh);

    //查询除了本店之外有没有重复的店名
    int getDm(BtyTxl btyTxl);

    //查询除了本店之外有没有重复的餐厅编号
    int getCtbh(BtyTxl btyTxl);

    int getSum(BtyTxlRY btyTxlRY);

    /**
     * 查询该营运经理助理对应的营运经理
     * @param account
     * @param phone
     * @return
     */
    BtyTxl getYyjl(@Param("account") String account, @Param("phone") String phone);

    Page<Map<String, Object>> listDd(@Param("page") Page page, @Param("ctbh") String ctbh, @Param("dm") String dm,
                                     @Param("csqy") String csqy, @Param("yyjl") String yyjl, @Param("dd") String dd,
                                     @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tel") String tel, @Param("status") Integer status);

    Page<Map<String, Object>> listYy(@Param("page") Page page, @Param("ctbh") String ctbh, @Param("dm") String dm,
                                     @Param("csqy") String csqy, @Param("yyjl") String yyjl, @Param("dd") String dd,
                                     @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tel") String tel, @Param("status") Integer status);

    Page<Map<String, Object>> listZl(@Param("page") Page page, @Param("ctbh") String ctbh, @Param("dm") String dm,
                                     @Param("csqy") String csqy, @Param("yyjl") String yyjl, @Param("dd") String dd,
                                     @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tel") String tel, @Param("status") Integer status);



    /**
     * 同步店长信息
     */
    int updateDz(@Param("list")List<Map> list);

    /**
     * 督导
     * @param id
     * @return
     */
    String selectDd(@Param("id") Long id);

    /**
     * 通讯录同步食品经营许可证数据
     * @param btyTxl
     */
    void edit(BtyTxl btyTxl);

    int updateTxlYy(BtyTxl btyTxl);

    int updateTxlRYDd(BtyTxlRY btyTxlRY);

    /**
     * 获取通讯录财务码数据
     * @return
     */
    List<BtyTxl> cwmList();

    void updateCwm(BtyTxl btyTxl);

    void updateCwms(BtyTxl btyTxl);

    int getTxlByDm(@Param("btyDm") String btyDm);

    int getTxlByYm(@Param("yaoma") String yaoma);

    void updateCtByYm(BtyTxl btyTxl);

    void updateCtByDm(BtyTxl btyTxl);

    IPage<TakeAwayResult> takeAwayTxlPageList(@Param("page") Page pageContext, @Param("paramCondition") TakeAwayTxlParam takeAwayTxlParam);

    List<TakeAwayResult> takeAwayExportList(@Param("paramCondition") TakeAwayTxlParam takeAwayTxlParam);

    List<YyjlResult> getyyjlList();

    BtyTxl getStatus(String dm);

    TakeAwayResult takeAwayTxl(@Param("gcgWsjdId") String gcgWsjdId);

    IPage<TakeAwayResult> wmList(@Param("page") Page pageContext, @Param("paramCondition") TakeAwayTxlParam takeAwayTxlParam);

    List<TakeAwayResult> wmExportList(@Param("paramCondition") TakeAwayTxlParam takeAwayTxlParam);

    List<Map> tcList();

    void updateYy(List<Map> list);

    List<Map> getDd(@Param("list") List<Map> list, @Param("zw") String zw);

    List<Map> getWmList();

    void updateList(@Param("list") List<Map> list);

    /**
     * 批量修改通讯录中法人和食品经营许可截止日期
     */
    void editTxl(@Param("list") List<Map> list);

    List<Map<String, Object>> listCwmAll();
}
